<?php

namespace App\Http\Controllers\Frontend;

use App\Http\Controllers\Controller;
use App\Models\Page;
use Illuminate\View\View;

class PageController extends Controller
{
    /**
     * 显示页面详情
     *
     * @param string $slug
     * @return View
     */
    public function show(string $slug): View
    {
        $page = Page::with(['user'])
            ->where('slug', $slug)
            ->where('status', 'published')
            ->firstOrFail();

        // 根据页面模板选择视图
        $template = $page->template ?? 'default';
        $viewName = "pages.templates.{$template}";
        
        // 如果指定模板不存在，使用默认模板
        if (!view()->exists($viewName)) {
            $viewName = 'pages.show';
        }

        return view($viewName, compact('page'));
    }

    /**
     * 显示页面列表（如果需要）
     *
     * @return View
     */
    public function index(): View
    {
        $pages = Page::where('status', 'published')
            ->orderBy('title')
            ->get();

        return view('pages.index', compact('pages'));
    }
}